home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d20 / pvert.arc / XMSG.H < prev    next >
C/C++ Source or Header  |  1992-01-15  |  6KB  |  117 lines

  1. #ifndef MSGERRS
  2.  
  3.     /* return values for functions in this module.  Also check errno */
  4.  
  5.     #define MSG_NOERR       0
  6.     #define MSG_NOACCESS    1
  7.     #define MSG_NOOPEN      2
  8.     #define MSG_NOMEM       3
  9.     #define MSG_NOSEEK      4
  10.     #define MSG_NOLOCK      5
  11.     #define MSG_NOUNLZSS    6
  12.     #define MSG_REDUCED     7
  13.     #define MSG_NOTEXT      8
  14.     #define MSG_BADAREA     9
  15.     #define MSG_BADNUM      10
  16.     #define MSG_NOREAD      11
  17.     #define MSG_PARTREAD    12
  18.     #define MSG_ISPRIVATE   13
  19.     #define MSG_ISDELETED   14
  20.     #define MSG_BADWRITE    15
  21.     #define MSG_NOMOREMSGS  16
  22.  
  23.     #define MSGERRS
  24. #endif
  25.  
  26. #ifndef MSGDELETED
  27.  
  28. /*-------------------------------------------------------------------------*/
  29. /* XBBS Message header                                                     */
  30. /*-------------------------------------------------------------------------*/
  31. struct __xmsg__ {
  32.       char from[36];
  33.       char to[36];
  34.       char subj[60];
  35.       unsigned int up;
  36.       unsigned int dn;
  37.       unsigned int o_point;
  38.       unsigned int length;         /* Length of message */
  39.      unsigned long start;          /* Starting postition in text file              */
  40.       char date[20];
  41.       unsigned int times;          /* unused                                       */
  42.       unsigned int dest;           /* Destination node                             */
  43.       unsigned int orig;           /* Origination node number                      */
  44.       unsigned int cost;           /* Unit cost charged to send the message        */
  45.       unsigned int orig_net;       /* Origination network number                   */
  46.       unsigned int dest_net;       /* Destination network number                   */
  47.       char indate[4];              /* import date  (YMD(null))                     */
  48.       unsigned int m_attr;         /* Extra attributes                             */
  49.       unsigned int d_zone;         /* Destination zone                             */
  50.       unsigned int o_zone;         /* Origination zone                             */
  51.       unsigned int attr;           /* Attribute (behavior) of the message          */
  52.       unsigned int d_point;
  53. };
  54.  
  55. typedef struct __xmsg__ XMSG;
  56.  
  57. /* These apply to m_attr */
  58.  
  59. #define MSGDELETED 0x0001  /* deleted message,          0000 0000 0000 0001*/
  60. #define MSGANON    0x0002  /* anonymous message         0000 0000 0000 0010*/
  61. #define MSGECHO    0x0004  /* unmoved echo message      0000 0000 0000 0100*/
  62. #define MSGNET     0x0008  /* unmoved net message       0000 0000 0000 1000*/
  63. #define MSGHOLD    0x0010  /* file attached to msg      0000 0000 0001 0000*/
  64. #define MSGHOST    0x0020  /* being forwarded           0000 0000 0010 0000*/
  65. #define MSGSCANNED 0x0040  /* fidonet scanned           0000 0000 0100 0000*/
  66. #define MSGKEEP    0x0080  /* don't delete              0000 0000 1000 0000*/
  67. #define MSGTREATED 0x0100  /* soft cr's & lf's removed  0000 0001 0000 0000*/
  68. #define MSGPACKED  0x0200  /* message LZSS compressed   0000 0010 0000 0000*/
  69. #define MSGGSCAN   0x0400  /* groupmail scanned         0000 0100 0000 0000*/
  70. #define MSGRSCAN   0x0800  /* rfc0822 scanned           0000 1000 0000 0000*/
  71. #define MSGQSCAN   0x1000  /* qwk scanned               0001 0000 0000 0000*/
  72. /*#define    0x2000  /*  0010 0000 0000 0000*/
  73. /*#define    0x4000  /*  0100 0000 0000 0000*/
  74. #define MSGTAGGED  0x8000  /* used by offline readers   1000 0000 0000 0000*/
  75.  
  76.  
  77. /* FIDO Message attributes (attr)                                           */
  78.  
  79. #define MSGPRIVATE 0x0001  /* private message,          0000 0000 0000 0001 */
  80. #define MSGCRASH   0x0002  /* accept for forwarding     0000 0000 0000 0010 */
  81. #define MSGREAD    0x0004  /* read by addressee         0000 0000 0000 0100 */
  82. #define MSGSENT    0x0008  /* sent OK (remote)          0000 0000 0000 1000 */
  83. #define MSGFILE    0x0010  /* file attached to msg      0000 0000 0001 0000 */
  84. #define MSGFWD     0x0020  /* being forwarded           0000 0000 0010 0000 */
  85. #define MSGORPHAN  0x0040  /* unknown dest node         0000 0000 0100 0000 */
  86. #define MSGKILL    0x0080  /* kill after mailing        0000 0000 1000 0000 */
  87. #define MSGLOCAL   0x0100  /* FidoNet vs. local         0000 0001 0000 0000 */
  88. #define MSGXX1     0x0200  /*                           0000 0010 0000 0000 */
  89. #define MSGXX2     0x0400  /* STRIPPED by FidoNet<tm>   0000 0100 0000 0000 */
  90. #define MSGFRQ     0x0800  /* file request              0000 1000 0000 0000 */
  91. #define MSGRRQ     0x1000  /* receipt requested         0001 0000 0000 0000 */
  92. #define MSGCPT     0x2000  /* is a return receipt       0010 0000 0000 0000 */
  93. #define MSGARQ     0x4000  /* audit trail requested     0100 0000 0000 0000 */
  94. #define MSGURQ     0x8000  /* update request            1000 0000 0000 0000 */
  95.  
  96. #endif
  97.  
  98. /* LZSS routines in xbbslzs2.c */
  99.  
  100. char * unpack_msg2 (XMSG *msg,char **hold);
  101. char * pack_msg2 (XMSG *msg,char *hold);
  102.  
  103. /* primitive message access functions in getput2.c */
  104.  
  105. int get_text2 (char **hold,XMSG *msg,unsigned int areano,
  106.                         unsigned int messno);
  107. int append_text2 (XMSG *msg,char *hold,unsigned int areano,
  108.                            unsigned int messno);
  109. int replace_text2 (XMSG *msg,char *hold,unsigned int areano,
  110.                             unsigned int messno);
  111. int get_mess2 (XMSG *msg,unsigned int areano,unsigned int messno);
  112. int put_mess2 (XMSG *msg,unsigned int areano,unsigned int messno);
  113. int post_message2 (XMSG *msg,char **hold,unsigned int areano,int isfile);
  114.  
  115. char * write_line2 (char *line, char **text,
  116.                               unsigned int linelen, int ctla);
  117.